home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / e / e_modules02.lha / e_modules02 / framework / wbAppIcon.e < prev    next >
Encoding:
Text File  |  1996-08-17  |  1.5 KB  |  54 lines

  1. -> wbAppIcon is an abstraction of WB AppIcons.
  2. -> Copyright © Guichard Damien 01/04/1996
  3. -> drobna poprawka by Piotr Gapiïski (31.03.96)
  4.  
  5.  
  6. OPT MODULE
  7. OPT EXPORT
  8.  
  9. MODULE 'wb','workbench/workbench','icon','workbench/startup'
  10. MODULE 'fw/wbObject','fw/wbMessagePort'
  11.  
  12. OBJECT wbAppIcon OF wbMessagePort
  13.   diskObject
  14.   appIcon
  15. ENDOBJECT
  16.  
  17. -> Create a WB AppIcon.
  18. -> Return FALSE if failed.
  19. PROC create(name,iconName) OF wbAppIcon HANDLE
  20.   IF iconbase=NIL THEN Raise(0)
  21.   IF workbenchbase=NIL THEN Raise(0)
  22.   IF self.makePort()=FALSE THEN Raise(0)
  23.   self.diskObject:=GetDiskObjectNew(iconName)
  24.   IF self.diskObject=NIL THEN Raise(0)
  25.   self.appIcon:=AddAppIconA(0,0,name,self.port,NIL,self.diskObject,NIL)
  26.   IF self.appIcon=NIL THEN Raise(0)
  27.   RETURN TRUE
  28. EXCEPT
  29.   self.remove()
  30. ENDPROC FALSE
  31.  
  32. -> Handle the receipt of a message at the object's MsgPort.
  33. PROC handleMessage(appMsg:PTR TO appmessage) OF wbAppIcon
  34.   IF appMsg.numargs=0 THEN RETURN self.handleDoubleClik()
  35. ENDPROC self.handleDroppedIcons(appMsg.arglist,appMsg.numargs)
  36. ->---------------------------------------------^^^^^^^^^^^^^^
  37.  
  38. -> Handle double click on the AppIcon.
  39. PROC handleDoubleClik() OF wbAppIcon IS STOPALL
  40.  
  41. -> Handle Icons dropped into AppIcon.
  42. PROC handleDroppedIcons(argList:PTR TO wbarg,n=0) OF wbAppIcon IS PASS
  43. ->-------------------------------------------^^^
  44.  
  45. -> Remove the WB AppIcon.
  46. PROC remove() OF wbAppIcon
  47.   IF self.appIcon THEN RemoveAppIcon(self.appIcon)
  48.   IF self.diskObject THEN FreeDiskObject(self.diskObject)
  49.   IF self.port THEN self.deletePort()
  50.   self.appIcon:=NIL
  51.   self.diskObject:=NIL
  52. ENDPROC
  53.  
  54.